Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Warning: mysql_connect(): Too many connections (Aquilo Novo)
Author Message
Aquilo Novo
Заглянувший



Joined: 18 Aug 2006
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Fri Sep 01, 2006 8:25 pm (написано за 3 минуты 30 секунд)
   Post subject: Warning: mysql_connect(): Too many connections
Reply with quote

Too many connections - вот что выдает сайт(а точнее выдает mysql_error() ) когда я пытаюсь к нему подключиться.

Вопрос такой: это проблема хостинга(его глюки с бд или ограничение на неправильно поставленное ограничение количество соединений с бд с одного сайта) или это могло вониктнуть из-за программиста, тоесть меня?

Моя точка зрения, что это хостинг глючит.

Заранее спасибо за ответы.
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Sat Sep 02, 2006 9:03 pm (спустя 1 день 37 минут; написано за 28 секунд)
   Post subject:
Reply with quote

Aquilo Novo
Глючит хостинг. Или не глючит, а справедливо не даёт слишком много соединений к базе данных
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Sun Sep 03, 2006 2:20 pm (спустя 17 часов 16 минут; написано за 3 минуты 2 секунды)
   Post subject:
Reply with quote

Aquilo Novo
могло и из-за программиста. Скажем ,если видно, что на 100 процессов Апача висит 250 процессов Мускуля - скорее всего, где-то соединение разможается. Кажется, это проверяется через
Code (SQL): скопировать код в буфер обмена
SELECT CONNECTION_ID();
Back to top
View user's profile Send private message
Aquilo Novo
Заглянувший



Joined: 18 Aug 2006
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Tue Sep 05, 2006 8:01 pm (спустя 2 дня 5 часов 41 минуту; написано за 2 минуты 4 секунды)
   Post subject:
Reply with quote

Спсибо за ответы.

Скорре всего проблема в хостинге, так как я не использую поддерживающиеся соединения с базой.
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Sep 05, 2006 8:39 pm (спустя 37 минут; написано за 2 минуты 37 секунд)
   Post subject:
Reply with quote

Aquilo Novo
это необязательно. Скажем, библиотека ADODB включает предпоследний параметр в mysql_connect().
поэтому в PHP4 код
Code (php): скопировать код в буфер обмена
$db = ADONewConnection($dsn);
$smarty->db = $db;
приведет к тому, что на каждую копию скрипта будет открыто 2 линка к MySQL
Back to top
View user's profile Send private message
Aquilo Novo
Заглянувший



Joined: 18 Aug 2006
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Tue Sep 05, 2006 9:01 pm (спустя 22 минуты; написано за 1 минуту 37 секунд)
   Post subject:
Reply with quote

У меня все просто(в плане что никаких сторонних функций и библиотек не используется), а для подключения и выбора базы я использую такой код:
Code (php): скопировать код в буфер обмена
mysql_connect (www.php.net/mysql_connect)("localhost", $user, $pwd)
        or die (www.php.net/die)("Could not connect: ".mysql_error());
@mysql_query (www.php.net/mysql_query)('CREATE DATABASE $db');
mysql_select_db (www.php.net/mysql_select_db)($db)
        or die (www.php.net/die)("Could not select database: ".mysql_error());
Back to top
View user's profile Send private message
Никита Косолaпов
Участник форума



Joined: 08 Aug 2006
Posts: 172
Карма: 9
   поощрить/наказать

Location: Москва

PostPosted: Tue Sep 05, 2006 11:15 pm (спустя 2 часа 14 минут; написано за 2 минуты 38 секунд)
   Post subject:
Reply with quote

А почему не используете идентификатор соединения в вызовах mysql_query?
Code (php): скопировать код в буфер обмена
$db_connect = mysql_connect (www.php.net/mysql_connect)("localhost", $user, $pwd)
        or die (www.php.net/die)("Could not connect: ".mysql_error());
@mysql_query (www.php.net/mysql_query)('CREATE DATABASE $db', $db_connect);
mysql_select_db (www.php.net/mysql_select_db)($db, $db_connect)
        or die (www.php.net/die)("Could not select database: ".mysql_error());
Это гарантирует открытие не более одного соединения, тогда как в Вашем случае mysql_query() и mysql_select_db() могут порождать новые подключения.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Sep 06, 2006 10:31 am (спустя 11 часов 15 минут; написано за 2 минуты 36 секунд)
   Post subject:
Reply with quote

Никита Косолáпов wrote:
Это гарантирует открытие не более одного соединения
В общем-то - не гарантирует. Если умолчальный доступ (то есть mysql_connect() - без параметров) закрыт, то неявно соединение не откроется. Еще можно попробовать в конце скрипта принудительно закрывать соединение - PHP это должен делать автоматически, но мало ли...
Back to top
View user's profile Send private message
Aquilo Novo
Заглянувший



Joined: 18 Aug 2006
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Wed Sep 06, 2006 3:06 pm (спустя 4 часа 35 минут; написано за 3 минуты 46 секунд)
   Post subject:
Reply with quote

Maus wrote:
Никита Косолáпов wrote:
Это гарантирует открытие не более одного соединения
В общем-то - не гарантирует. Если умолчальный доступ (то есть mysql_connect() - без параметров) закрыт, то неявно соединение не откроется. Еще можно попробовать в конце скрипта принудительно закрывать соединение - PHP это должен делать автоматически, но мало ли...
Php всегда автоматом рубит соединения с базой после генерации страницы. Тоетсь при использровании моего мтеода конекта и выборки базы не может быть флуд количством соединений с базой.

Вы со мной согласны?
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Sep 06, 2006 4:04 pm (спустя 58 минут; написано за 1 минуту 20 секунд)
   Post subject:
Reply with quote

Aquilo Novo wrote:
php всегда автоматом рубит соединения с базой после генерации страницы
Столкнувшись с последними багами в PHP, я уже ни в чём не уверен.
Back to top
View user's profile Send private message
Aquilo Novo
Заглянувший



Joined: 18 Aug 2006
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Wed Sep 06, 2006 5:11 pm (спустя 1 час 6 минут; написано за 32 секунды)
   Post subject:
Reply with quote

Доверюсь мнению профи...
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Sep 06, 2006 5:35 pm (спустя 24 минуты; написано за 2 минуты 39 секунд)
   Post subject:
Reply with quote

Aquilo Novo
"доверяй, но проверяй". Если можно, Вы попробуйте создать скрипт с коннектом к MySQL, натравить apache_bench на этот скрипт и посмотреть число процессов Апача/процессов MySQL. В общем. протестировать как-то ситуацию.
Back to top
View user's profile Send private message
Владимир Гаврилов
Участник форума



Joined: 20 Aug 2004
Posts: 73
Карма: 1
   поощрить/наказать

Location: Уфа

PostPosted: Wed Jan 31, 2007 1:26 pm (спустя 4 месяца 24 дня 19 часов 51 минуту; написано за 10 минут 28 секунд)
   Post subject:
Reply with quote

Здравствуйте!
Решил немного продолжить тему. У меня по сути абсолютно аналогичная проблема: периодически выскакивает
Code (any language): скопировать код в буфер обмена
mysql_connect(): Too many connections
или
Code (any language): скопировать код в буфер обмена
mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
или
Code (any language): скопировать код в буфер обмена
Lost connection
Даже когда я сам интенсивно лазию по сайту - 30-50 просмотров и нарвешься.
(Я со страхом думаю, что будет если человек 10 будут одновременно лазить.)

В связи с этим у меня дополнительный вопрос: я знаю, что такая ошибка одно время выскакивала на этом форуме, потом вроде исправили. Так в чем была проблема, в скриптах или в конфигурации сервера? Очень прошу откликнуться сотрудников лаборатории.

Я лично грешу на качество хостинга, но мало ли...
P.S. Хостинг платный, известный. Постоянные соединения с БД не использую.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML